﻿using System;
using Microsoft.Xna.Framework.Graphics;

namespace Terraria.ModLoader
{
	// Token: 0x020001C0 RID: 448
	public abstract class ModSurfaceBgStyle
	{
		// Token: 0x1700014B RID: 331
		// (get) Token: 0x060012C1 RID: 4801 RVA: 0x0000F9EE File Offset: 0x0000DBEE
		// (set) Token: 0x060012C2 RID: 4802 RVA: 0x0000F9F6 File Offset: 0x0000DBF6
		public Mod mod { get; internal set; }

		// Token: 0x1700014C RID: 332
		// (get) Token: 0x060012C3 RID: 4803 RVA: 0x0000F9FF File Offset: 0x0000DBFF
		// (set) Token: 0x060012C4 RID: 4804 RVA: 0x0000FA07 File Offset: 0x0000DC07
		public string Name { get; internal set; }

		// Token: 0x1700014D RID: 333
		// (get) Token: 0x060012C5 RID: 4805 RVA: 0x0000FA10 File Offset: 0x0000DC10
		// (set) Token: 0x060012C6 RID: 4806 RVA: 0x0000FA18 File Offset: 0x0000DC18
		public int Slot { get; internal set; }

		// Token: 0x060012C7 RID: 4807 RVA: 0x0000FA21 File Offset: 0x0000DC21
		public virtual bool Autoload(ref string name)
		{
			return this.mod.Properties.Autoload;
		}

		// Token: 0x060012C8 RID: 4808 RVA: 0x0000ADF8 File Offset: 0x00008FF8
		public virtual bool ChooseBgStyle()
		{
			return false;
		}

		// Token: 0x060012C9 RID: 4809
		public abstract void ModifyFarFades(float[] fades, float transitionSpeed);

		// Token: 0x060012CA RID: 4810 RVA: 0x0000EAB6 File Offset: 0x0000CCB6
		public virtual int ChooseFarTexture()
		{
			return -1;
		}

		// Token: 0x060012CB RID: 4811 RVA: 0x0000EAB6 File Offset: 0x0000CCB6
		public virtual int ChooseMiddleTexture()
		{
			return -1;
		}

		// Token: 0x060012CC RID: 4812 RVA: 0x00008CF7 File Offset: 0x00006EF7
		public virtual bool PreDrawCloseBackground(SpriteBatch spriteBatch)
		{
			return true;
		}

		// Token: 0x060012CD RID: 4813 RVA: 0x0000EAB6 File Offset: 0x0000CCB6
		public virtual int ChooseCloseTexture(ref float scale, ref double parallax, ref float a, ref float b)
		{
			return -1;
		}
	}
}
